package data_structure;

public class leetcode_0530 {
    public int getMinimumDifference(TreeNode root) {
        int[] min=new int[1];
        min[0]=100000;
        int[] pre=new int[1];
        pre[0]=-1;
        inorder(root,min,pre);
        return min[0];
    }
    public void inorder(TreeNode node,int[] min,int[] pre){
        if(node==null) return;
        if(node.left==null&&node.right==null){
            if(pre[0]==-1) pre[0]=node.val;
            else{
                min[0]=(min[0]<node.val-pre[0])?min[0]:node.val-pre[0];
                pre[0]=node.val;
            }
            return;
        }
        inorder(node.left,min,pre);
        if(pre[0]==-1) pre[0]=node.val;
        else{
            min[0]=(min[0]<node.val-pre[0])?min[0]:node.val-pre[0];
            pre[0]=node.val;
        }
        inorder(node.right,min,pre);
    }
}
